/*
见到store文件夹就意味着见到了vuex

该文件用于穿件vuex中最为核心的store
*/
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
//准备actions，用于响应组件中的动作
const actions = {
    jia(context,value){
        /**
         * context：可以理解成mini版本的store
         * value：传过来的值
         */
        // console.log('123',a,b);
        // 这里需要注意的是，尽量actions是小写，mutations是大写
        context.commit('JIA',value)
    },

    jiaWait(context,value){
        // 你也可以获得state中的值
        context.state.sum;

        // 有业务逻辑可以写在actions中
        setTimeout(()=>{},200)
    }
}
//准备mutations 用于操作数据
const mutations ={
    JIA(state,value){
        state.sum += value
    },
    JIAWAIT(state,value){

    }
}
// 准备 state-用于存储数据
const state = {
    sum:0
}

// 新的配置项，getters，用于将state中的数据进行加工，
// 想必组件中的computed属性，他是全局的，哪里都可以使用
const getters = {
    bigSum(state){
        return state.sum * 10
    }
}

// 创建 store
const store = new Vuex.Store({
    actions,
    mutations,
    state,
    getters
})
// 暴露
export default store